package com.shanzhu.volunteer.extra.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.shanzhu.volunteer.modules.volunteer.entity.enums.SexEnum;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

@Data
@ToString
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
@TableName("ce_student")
public class CeStudent implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 绑定用户id
     */
    @TableField("user_id")
    @JsonProperty("userId")
    private Long userId;

    /**
     * 学号
     */
    @TableField("student_no")
    @JsonProperty("studentNo")
    private String studentNo;

    /**
     * 学生姓名
     */
    @TableField("student_name")
    @JsonProperty("studentName")
    private String studentName;

    /**
     * 入学年份
     */
    @TableField("enrollment_year")
    @JsonProperty("enrollmentYear")
    private Integer enrollmentYear;

    /**
     * 毕业年份
     */
    @TableField("graduate_year")
    @JsonProperty("graduateYear")
    private Integer graduateYear;

    /**
     * 性别 MAN-男 WOMEN-女
     */
    @TableField("sex")
    @JsonProperty("sex")
    private SexEnum sex;

    /**
     * 成绩分数
     */
    @TableField("achievement")
    @JsonProperty("achievement")
    private Integer achievement;


    /**
     * 创建时间
     */
    @TableField("created_time")
    @JsonProperty("createdTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createdTime;

    /**
     * 创建人
     */
    @TableField("created_user")
    @JsonProperty("createdUser")
    private String createdUser;

    /**
     * 修改时间
     */
    @TableField("updated_time")
    @JsonProperty("updatedTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updatedTime;

    /**
     * 修改人
     */
    @TableField("updated_user")
    @JsonProperty("updatedUser")
    private String updatedUser;

    /**
     * 用户名
     */
    @TableField(exist = false)
    @JsonProperty("userName")
    private String userName;

    /**
     * 标签名称展示列表
     */
    @TableField(exist = false)
    @JsonProperty("tagNameText")
    private String tagNameText;
}
